package com.dragon.modules.yuegou.model.order;

import com.dragon.modules.yuegou.entity.order.OrderShippingEntity;
import com.dragon.modules.yuegou.enums.order.OrderShippingStatus;
import com.dragon.modules.yuegou.enums.order.OrderShippingType;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单配送模型类
 *
 * @author pbuilder generated
 * @date 2020-03-24 09:12:40
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class OrderShipping extends OrderShippingEntity {

	@ApiModelProperty(value = "组合订单状态 0-未付款、1-待接单、2-已完成、3-已退款、4-未接单,已退款、5-已接单")
	private Integer combinationStatus;
	
	private String statusName;
	
	//订单状态
	private Integer orderStatus;
	
	//订单退款状态
	private Integer refundStatus;

	public Integer getCombinationStatus() {
		return combinationStatus;
	}

	public void setCombinationStatus(Integer combinationStatus) {
		this.combinationStatus = combinationStatus;
	}

	public Integer getOrderStatus() {
		return orderStatus;
	}
	
	public void setOrderStatus(Integer orderStatus) {
		this.orderStatus = orderStatus;
	}

	public String getStatusName() {
		return statusName;
	}

	public void setStatusName(String statusName) {
		this.statusName = statusName;
	}

	public Integer getRefundStatus() {
		return refundStatus;
	}

	public void setRefundStatus(Integer refundStatus) {
		this.refundStatus = refundStatus;
	}

	private static final long serialVersionUID = 1L;

	/**
	 * 构造一个空订单配送模型对象
	 */
	public OrderShipping() {
		super();
	}

	/**
	 * 依据实体对象的信息构造一个订单配送模型对象
	 *
	 * @param entity 实体对象
	 */
	public OrderShipping(OrderShippingEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个订单配送模型对象
	 *
	 * @param other 其它对象
	 */
	public OrderShipping(OrderShipping other) {
		super(other);
	}

	@Override
	public String getOrderNo() {
		return orderNo;
	}

	/**
	 * 设置订单号
	 *
	 * @param orderNo 订单号
	 * @return 当前对象
	 */
	public OrderShipping orderNo(String orderNo) {
		this.orderNo = orderNo;
		return this;
	}

	@Override
	public String getReceiverName() {
		return receiverName;
	}

	/**
	 * 设置收货人全称
	 *
	 * @param receiverName 收货人全称
	 * @return 当前对象
	 */
	public OrderShipping receiverName(String receiverName) {
		this.receiverName = receiverName;
		return this;
	}

	@Override
	public String getReceiverMobile() {
		return receiverMobile;
	}

	/**
	 * 设置收货人手机号
	 *
	 * @param receiverMobile 收货人手机号
	 * @return 当前对象
	 */
	public OrderShipping receiverMobile(String receiverMobile) {
		this.receiverMobile = receiverMobile;
		return this;
	}

	@Override
	public String getReceiverProvince() {
		return receiverProvince;
	}

	/**
	 * 设置省份
	 *
	 * @param receiverProvince 省份
	 * @return 当前对象
	 */
	public OrderShipping receiverProvince(String receiverProvince) {
		this.receiverProvince = receiverProvince;
		return this;
	}

	@Override
	public String getReceiverCity() {
		return receiverCity;
	}

	/**
	 * 设置城市
	 *
	 * @param receiverCity 城市
	 * @return 当前对象
	 */
	public OrderShipping receiverCity(String receiverCity) {
		this.receiverCity = receiverCity;
		return this;
	}

	@Override
	public String getReceiverDistrict() {
		return receiverDistrict;
	}

	/**
	 * 设置区/县
	 *
	 * @param receiverDistrict 区/县
	 * @return 当前对象
	 */
	public OrderShipping receiverDistrict(String receiverDistrict) {
		this.receiverDistrict = receiverDistrict;
		return this;
	}

	@Override
	public String getReceiverAddress() {
		return receiverAddress;
	}

	/**
	 * 设置详细地址
	 *
	 * @param receiverAddress 详细地址
	 * @return 当前对象
	 */
	public OrderShipping receiverAddress(String receiverAddress) {
		this.receiverAddress = receiverAddress;
		return this;
	}

	@Override
	public String getReceiverZip() {
		return receiverZip;
	}

	/**
	 * 设置邮政编码
	 *
	 * @param receiverZip 邮政编码
	 * @return 当前对象
	 */
	public OrderShipping receiverZip(String receiverZip) {
		this.receiverZip = receiverZip;
		return this;
	}

	@Override
	public String getCityCode() {
		return cityCode;
	}

	/**
	 * 设置城市Code
	 * 
	 * @param cityCode 城市Code
	 * @return 当前对象
	 */
	public OrderShipping cityCode(String cityCode) {
		this.cityCode = cityCode;
		return this;
	}

	@Override
	public String getRemark() {
		return remark;
	}

	/**
	 * 设置备注
	 * 
	 * @param remark 备注
	 * @return 当前对象
	 */
	public OrderShipping remark(String remark) {
		this.remark = remark;
		return this;
	}

	@Override
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}

	/**
	 * 设置创建时间
	 *
	 * @param createdTime 创建时间
	 * @return 当前对象
	 */
	public OrderShipping createdTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
		return this;
	}

	@Override
	public String getModifiedBy() {
		return modifiedBy;
	}

	/**
	 * 设置更新人ID
	 *
	 * @param modifiedBy 更新人ID
	 * @return 当前对象
	 */
	public OrderShipping modifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
		return this;
	}

	@Override
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}

	/**
	 * 设置更新时间
	 *
	 * @param modifiedTime 更新时间
	 * @return 当前对象
	 */
	public OrderShipping modifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
		return this;
	}

	@Override
	public Long getShippingBy() {
		return shippingBy;
	}

	/**
	 * 设置发货人
	 *
	 * @param shippingBy 发货人
	 * @return 当前对象
	 */
	public OrderShipping shippingBy(Long shippingBy) {
		this.shippingBy = shippingBy;
		return this;
	}

	@Override
	public LocalDateTime getShippingTime() {
		return shippingTime;
	}

	/**
	 * 设置发货时间
	 *
	 * @param shippingTime 发货时间
	 * @return 当前对象
	 */
	public OrderShipping shippingTime(LocalDateTime shippingTime) {
		this.shippingTime = shippingTime;
		return this;
	}

	@Override
	public BigDecimal getFreight() {
		return freight;
	}

	/**
	 * 设置运费
	 *
	 * @param freight 运费
	 * @return 当前对象
	 */
	public OrderShipping freight(BigDecimal freight) {
		this.freight = freight;
		return this;
	}

	@Override
	public OrderShippingType getType() {
		return type;
	}

	/**
	 * 设置[枚举]配送类型：0-自主配送-AUTONOMY、1-达达配送-DADA
	 * 
	 * @param type [枚举]配送类型：0-自主配送-AUTONOMY、1-达达配送-DADA
	 * @return 当前对象
	 */
	public OrderShipping type(OrderShippingType type) {
		this.type = type;
		return this;
	}

	@Override
	public OrderShippingStatus getStatus() {
		return status;
	}

	/**
	 * 设置[枚举]配送状态：0-未发货-NO_DELIVER、1-已发货未接单-DELIVER、2-已接单-ORDER、3-已取货-PICK_UP、4-已送达-DELIVERY、5-已收货-GOODS
	 *
	 * @param status [枚举]配送状态：0-未发货-NO_DELIVER、1-已发货未接单-DELIVER、2-已接单-ORDER、3-已取货-PICK_UP、4-已送达-DELIVERY、5-已收货-GOODS
	 * @return 当前对象
	 */
	public OrderShipping status(OrderShippingStatus status) {
		this.status = status;
		return this;
	}

	@Override
	public String getTransporterName() {
		return transporterName;
	}

	/**
	 * 设置骑手姓名
	 *
	 * @param transporterName 骑手姓名
	 * @return 当前对象
	 */
	public OrderShipping transporterName(String transporterName) {
		this.transporterName = transporterName;
		return this;
	}

	@Override
	public String getTransporterPhone() {
		return transporterPhone;
	}

	/**
	 * 设置骑手电话
	 *
	 * @param transporterPhone 骑手电话
	 * @return 当前对象
	 */
	public OrderShipping transporterPhone(String transporterPhone) {
		this.transporterPhone = transporterPhone;
		return this;
	}

}
